package com.letv.core.utils;

import android.content.Context;
import android.os.Environment;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;

import com.letv.core.bean.IPBean;
import com.letv.pp.func.CdeHelper;

public class LetvSDKUtils {

    private static CdeHelper mCdeHelper;
    public static final String CDELOG1 = Environment.getExternalStorageDirectory() + "/letv/exceptionInfo/cde.txt";
    private static final String CDE_SERVICE_NAME = "com.letv.pp.service.CdeService";

    /**
     * 屏幕原始高度
     **/
    public static int sRawHeight; // 整个屏幕的原始高度
    /**
     * 屏幕宽
     **/
    public static int sWidth;
    /**
     * 屏幕高
     **/
    public static int sHeight;
    /**
     * 屏幕密度
     **/
    public static float sDensity;
    /**
     * iP信息，会在每次网络变换的时候更新
     **/
    protected static IPBean mIp;

    public static CdeHelper getCdeHelper(Context context) {
        if (null == mCdeHelper) {
            // app_id 表示当前 APP 的标识，保持和之前 UTP 的一致即可。
            String appId = "3000";
            String params = "port=6990&app_id=" + appId + "&ostype=android&channel_default_multi=0&log_type=4&log_file="
                + LetvSDKUtils.CDELOG1 + "&channel_default_multi=1&channel_max_count=2&dcache_enabled=1&dcache_capacity=50";
            mCdeHelper = CdeHelper.getInstance(context, params);
        }
        return mCdeHelper;
    }

    public static void reStartCde(Context context) {
        if (!LetvTools.checkServiceIsRunning(context, CDE_SERVICE_NAME)) {
            // cde进程可能会被回收,所以每次都判断一下是否需要重启
            LogInfo.log("sguotao", "*****************重启cde");
            startCde(context);
        }
    }

    /**
     * 启动cde服务 获取CdeHelper实例： getInstance(Context context, String
     * params)---默认先升级； getInstance(Context context, String params, boolean
     * isFirstUpgrade) isFirstUpgrade为true标示先升级在启动，为false表示静默升级
     */
    public static void startCde(Context context) {
        if (null != mCdeHelper) {
            mCdeHelper.start();
        }
//        mIsCdeStarting = true;
    }

    /**
     * 广告拼接开关
     **/
    public static boolean getPinjie() {
        return true;
    }

    public static String getVideoFormat() {
        String mVideoFormat = "mp4";
        String model = LetvUtils.getModelName();
        LogInfo.log("wxf", "playLibsVideoFormat/model:" + model);
        if ("LG-P970".equals(model)) {
            /*
             * v5.7以后需找出具体原因，解除此处的特殊判断 wxf 摩托XT910,LG-P970
             * 在用软解进行视频播放(如专题)时，第一个视频播放正常，第二个时，videoView已开始播放视频， 只有声音没画面。此处做特殊处理
             */
            mVideoFormat = "no";
            LogInfo.log("wxf", "--XT910 change videoFormat to no");
        }
//        isMI3Phone = false;
        return mVideoFormat;
    }

    /**
     * 初始化页面信息
     */
    public static void initScreenInfo(Context context) {
        Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        DisplayMetrics dm = new DisplayMetrics();
        display.getMetrics(dm);
        sWidth = dm.widthPixels;
        sHeight = dm.heightPixels;
        sDensity = dm.density;

        // 获取屏幕实际高度
        display.getRealMetrics(dm);
        sRawHeight = dm.heightPixels;
    }

    public static IPBean getIp() {
        return mIp;
    }

}
